OffscreenCanvas support and Blob creation #93
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of the change
Adds a new module
Graphics.Canvas.Offscreen
containing bindings to theOffscreenCanvas
interface, and adds bindings forHTMLCanvasElement.toBlob
.Semi-solves #75 -- doesn't directly allow creation of canvas elements, but gives a better purpose-built API for @thanacles' use case.
One thing that I haven't added because it somewhat worries me to add is
transferControlToOffscreen
. Given that it errors if the canvas has a context already, and getting a context on the canvas errors if it's been transferred, I'm unsure if simply allowing the JS to error withinEffect
is appropriate. Maybe it should just be prefixedunsafe
?I have also not added
transferToImageBitmap
, because there's no existing bindings for theImageBitmap
type and adding them seems like another far more involved PR's worth of work in and of itself.I'm also worried about the
aff
7.1.0
dependency imposed byaff-promise
, mostly because I don't actually know how package sets work. I tried to usejs-promise-aff
, but Bower couldn't find it. I imagine it wouldn't be too difficult to remove the dependency entirely, but I'm in way over my head with anything async.Checklist: